home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993 April: Penguin on DISC / ADC Developer CD (1993-04) (''Penguin On DISC'')_iso / Dev.CD Apr 93.iso / Utilities / MPW Interfaces 7.1 Beta / PInterfaces / HyperXCmd.p < prev    next >
Encoding:
Text File  |  1992-08-28  |  10.8 KB  |  266 lines  |  [TEXT/MPS ]

  1. {
  2.     HyperXCmd.p
  3.     Definition file for HyperCard XCMDs and XFCNs in Pascal.
  4.  
  5.     Copyright Apple Computer, Inc.  1987-1991
  6.     All rights reserved
  7.  
  8. *** Warning: This is an alpha version of the Interfaces for Cube-E. 
  9. ***          Things may change.  Caveat Programmer.
  10.  
  11.  
  12. }
  13.  
  14.  
  15. {$IFC UNDEFINED UsingIncludes}
  16. {$SETC UsingIncludes := 0}
  17. {$ENDC}
  18.  
  19. {$IFC NOT UsingIncludes}
  20.     UNIT HyperXCmd;
  21.     INTERFACE
  22. {$ENDC}
  23.  
  24. {$IFC UNDEFINED UsingHyperXCmd}
  25. {$SETC UsingHyperXCmd := 1}
  26.  
  27. {$I+}
  28. {$SETC HyperXCmdIncludes := UsingIncludes}
  29. {$SETC UsingIncludes := 1}
  30. {$IFC UNDEFINED UsingTypes}
  31. {$I $$Shell(PInterfaces)Types.p}
  32. {$ENDC}
  33. {$IFC UNDEFINED UsingEvents}
  34. {$I $$Shell(PInterfaces)Events.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED UsingTextEdit}
  37. {$I $$Shell(PInterfaces)TextEdit.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED UsingMenus}
  40. {$I $$Shell(PInterfaces)Menus.p}
  41. {$ENDC}
  42. {$IFC UNDEFINED UsingStandardFile}
  43. {$I $$Shell(PInterfaces)StandardFile.p}
  44. {$ENDC}
  45. {$SETC UsingIncludes := HyperXCmdIncludes}
  46.  
  47. CONST
  48.   { result codes }
  49.   xresSucc = 0;
  50.   xresFail = 1;
  51.   xresNotImp = 2;
  52.  
  53.   { XCMDBlock constants for event.what... }
  54.   xOpenEvt              = 1000;         { the first event after you are created }
  55.   xCloseEvt             = 1001;         { your window is being forced close (Quit?) }
  56.   xGiveUpEditEvt        = 1002;         { you are losing Edit... }
  57.   xGiveUpSoundEvt    = 1003;        { someone else is requesting HyperCard's sound channel }
  58.   xHidePalettesEvt    = 1004;        { someone called HideHCPalettes }
  59.   xShowPalettesEvt    = 1005;        { someone called ShowHCPalettes }
  60.   xEditUndo        = 1100;        { Edit——Undo }
  61.   xEditCut        = 1102;        { Edit——Cut }
  62.   xEditCopy        = 1103;        { Edit——Copy }
  63.   xEditPaste        = 1104;        { Edit——Paste }
  64.   xEditClear        = 1105;        { Edit——Clear }
  65.   xSendEvt        = 1200;        { script has sent you a message (text) }
  66.   xSetPropEvt        = 1201;        { set a window property }
  67.   xGetPropEvt        = 1202;        { get a window property }
  68.   xCursorWithin        = 1300;        { cursor is within the window }
  69.   xMenuEvt        = 1400;        { user has selected an item in your menu }
  70.   xMBarClickedEvt    = 1401;        { a menu is about to be shown--update if needed }
  71.  
  72.   xShowWatchInfoEvt    = 1501;        { for variable and message watchers }
  73.   xScriptErrorEvt    = 1502;        { place the insertion point }
  74.   xDebugErrorEvt    = 1503;        { user clicked "Debug" at a complaint }
  75.   xDebugStepEvt        = 1504;        { hilite the line }
  76.   xDebugTraceEvt    = 1505;        { same as step but tracing }
  77.   xDebugFinishedEvt    = 1506;        { script ended }
  78.  
  79.   paletteProc        = 2048;        { Windoid with grow box }
  80.   palNoGrowProc        = 2052;        { standard Windoid defproc } 
  81.   palZoomProc        = 2056;        { Windoid with zoom and grow }
  82.   palZoomNoGrow        = 2060;        { Windoid with zoom and no grow }
  83.   hasZoom        =    8;
  84.   hasTallTBar        =    2;
  85.   toggleHilite        =    1;
  86.   
  87.   maxCachedChecks    = 16;        { maximum number of checkpoints in a script }
  88.  
  89.   { paramCount is set to these constants when first calling special XThings }
  90.   xMessageWatcherID    = -2;
  91.   xVariableWatcherID    = -3;
  92.   xScriptEditorID    = -4;
  93.   xDebuggerID        = -5;
  94.  
  95.   { XTalkObjectPtr^.objectKind values }
  96.   stackObj    = 1;
  97.   bkgndObj    = 2;
  98.   cardObj    = 3;
  99.   fieldObj    = 4;
  100.   buttonObj    = 5;
  101.  
  102.   { selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) }
  103.   errorDlgID        = 1;    { 1:OK (default) }
  104.   confirmDlgID        = 2;    { 1:OK (default) and 2:Cancel }
  105.   confirmDelDlgID    = 3;    { 1:Cancel (default) and 2:Delete }
  106.   yesNoCancelDlgID    = 4;    { 1:Yes (default), 2:Cancel, and 3:No }
  107.  
  108.  
  109. TYPE
  110.   XCmdPtr   = ^XCmdBlock;
  111.   XCmdBlock = RECORD
  112.         paramCount:    INTEGER; { If = -1 then new use for XWindoids }
  113.         params:        ARRAY[1..16] OF Handle;
  114.         returnValue:     Handle; 
  115.         passFlag:    BOOLEAN;
  116.         
  117.         entryPoint:    ProcPtr; { to call back to HyperCard }
  118.         request:    INTEGER;
  119.         result:        INTEGER;
  120.         inArgs:        ARRAY[1..8] OF LongInt;
  121.         outArgs:    ARRAY[1..4] OF LongInt;
  122.           END;
  123.  
  124.   XWEventInfoPtr = ^XWEventInfo;
  125.   XWEventInfo     = RECORD
  126.              event:      EventRecord;
  127.              eventWindow: WindowPtr;
  128.              eventParams: ARRAY[1..9] OF LongInt;
  129.              eventResult: Handle;
  130.            END;
  131.           
  132.   XTalkObjectPtr = ^XTalkObject;
  133.   XTalkObject = RECORD
  134.           objectKind:   INTEGER;    { stack, bkgnd, card, field, or button }
  135.           stackNum:    LongInt;    { reference number of the source stack }
  136.           bkgndID:    LongInt;
  137.           cardID:    LongInt;
  138.           buttonID:    LongInt;
  139.           fieldID:    LongInt;
  140.         END;
  141.  
  142.   CheckPtHandle = ^CheckPtPtr;
  143.   CheckPtPtr    = ^CheckPts;
  144.   CheckPts    = RECORD
  145.                     checks: ARRAY[1..maxCachedChecks] OF INTEGER;
  146.           END;
  147.  
  148.  
  149. (****  HyperTalk Utilities  ****)
  150. FUNCTION  EvalExpr(paramPtr: XCmdPtr; expr: Str255): Handle;
  151. PROCEDURE SendCardMessage(paramPtr: XCmdPtr; msg: Str255);
  152. PROCEDURE SendHCMessage(paramPtr: XCmdPtr; msg: Str255);
  153. PROCEDURE RunHandler(paramPtr: XCmdPtr; handler: Handle);
  154.  
  155. (****  Memory Utilities  ****)
  156. FUNCTION  GetGlobal(paramPtr: XCmdPtr; globName: Str255): Handle;
  157. PROCEDURE SetGlobal(paramPtr: XCmdPtr; globName: Str255; globValue: Handle);
  158. PROCEDURE ZeroBytes(paramPtr: XCmdPtr; dstPtr: Ptr;longCount: LongInt);
  159.  
  160. (****  String Utilities  ****)
  161. PROCEDURE ScanToReturn(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  162. PROCEDURE ScanToZero(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  163. FUNCTION  StringEqual(paramPtr: XCmdPtr; str1,str2: Str255): BOOLEAN;
  164. FUNCTION  StringLength(paramPtr: XCmdPtr; strPtr: Ptr): LongInt;
  165. FUNCTION  StringMatch(paramPtr: XCmdPtr; pattern: Str255; target: Ptr): Ptr;
  166. PROCEDURE ZeroTermHandle(paramPtr: XCmdPtr; hndl: Handle);    
  167.  
  168. (****  String Conversions  ****)
  169. PROCEDURE BoolToStr(paramPtr: XCmdPtr; bool: BOOLEAN; VAR str: Str255);
  170. PROCEDURE ExtToStr(paramPtr: XCmdPtr; num: Extended80; VAR str: Str255);
  171. PROCEDURE LongToStr(paramPtr: XCmdPtr; posNum: LongInt; VAR str: Str255);
  172. PROCEDURE NumToHex(paramPtr: XCmdPtr; num: LongInt; nDigits: INTEGER; VAR str: Str255);
  173. PROCEDURE NumToStr(paramPtr: XCmdPtr; num: LongInt; VAR str: Str255);
  174. FUNCTION  PasToZero(paramPtr: XCmdPtr; str: Str255): Handle;
  175. PROCEDURE PointToStr(paramPtr: XCmdPtr; pt: Point; VAR str: Str255);
  176. PROCEDURE RectToStr(paramPtr: XCmdPtr; rct: Rect; VAR str: Str255);
  177. PROCEDURE ReturnToPas(paramPtr: XCmdPtr; zeroStr: Ptr; VAR pasStr: Str255);
  178. FUNCTION  StrToBool(paramPtr: XCmdPtr; str: Str255): BOOLEAN;
  179. FUNCTION  StrToExt(paramPtr: XCmdPtr; str: Str255): Extended80;
  180. FUNCTION  StrToLong(paramPtr: XCmdPtr; str: Str255): LongInt;
  181. FUNCTION  StrToNum(paramPtr: XCmdPtr; str: Str255): LongInt;
  182. PROCEDURE StrToPoint(paramPtr: XCmdPtr; str: Str255; VAR pt: Point);
  183. PROCEDURE StrToRect(paramPtr: XCmdPtr; str: Str255; VAR rct: Rect);
  184. PROCEDURE ZeroToPas(paramPtr: XCmdPtr; zeroStr: Ptr; VAR pasStr: Str255);
  185.  
  186. (****  Field Utilities  ****)
  187. FUNCTION  GetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER): Handle;
  188. FUNCTION  GetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255): Handle;
  189. FUNCTION  GetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER): Handle;
  190. PROCEDURE SetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldVal: Handle);
  191. PROCEDURE SetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255; fieldVal: Handle);
  192. PROCEDURE SetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER; fieldVal: Handle);
  193. FUNCTION  GetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID,fieldNum: INTEGER;
  194.              fieldNamePtr: StringPtr): TEHandle;
  195. PROCEDURE SetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID,fieldNum: INTEGER;
  196.              fieldNamePtr: StringPtr; fieldTE: TEHandle);
  197.  
  198. (****  Miscellaneous Utilities  ****)
  199. PROCEDURE BeginXSound(paramPtr: XCmdPtr; window: WindowPtr);            
  200. PROCEDURE EndXSound(paramPtr: XCmdPtr);                
  201. FUNCTION  GetFilePath(paramPtr: XCmdPtr; fileName: Str255; numTypes: INTEGER; typeList: SFTypeList;
  202.               askUser: BOOLEAN; VAR fileType: OSType; VAR fullName: Str255): BOOLEAN;
  203. PROCEDURE GetXResInfo(paramPtr: XCmdPtr; VAR resFile: INTEGER; VAR resID: INTEGER;
  204.               VAR rType: ResType; VAR name: Str255);
  205. PROCEDURE Notify(paramPtr: XCmdPtr);
  206. PROCEDURE SendHCEvent(paramPtr: XCmdPtr; event: EventRecord);    
  207. PROCEDURE SendWindowMessage(paramPtr: XCmdPtr; windPtr: WindowPtr;
  208.                 windowName: Str255; msg: Str255);
  209. FUNCTION  FrontDocWindow(paramPtr: XCmdPtr): WindowPtr;
  210. FUNCTION  StackNameToNum(paramPtr: XCmdPtr; stackName: Str255): LongInt;
  211. FUNCTION  ShowHCAlert(paramPtr: XCMDPtr; dlgID: INTEGER; promptStr: Str255): INTEGER;
  212.  
  213. (****  Creating and Disposing XWindoids  ****)
  214. FUNCTION  NewXWindow(paramPtr: XCmdPtr; boundsRect: Rect; title: Str255; visible: BOOLEAN;
  215.              procID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;        
  216. FUNCTION  GetNewXWindow(paramPtr: XCmdPtr; templateType: ResType; templateID: INTEGER;
  217.             color: BOOLEAN; floating: BOOLEAN): WindowPtr;        
  218. PROCEDURE CloseXWindow(paramPtr: XCmdPtr; window: WindowPtr);    
  219.  
  220. (****  XWindoid Utilities  ****)
  221. PROCEDURE HideHCPalettes(paramPtr: XCmdPtr);
  222. PROCEDURE ShowHCPalettes(paramPtr: XCmdPtr);
  223. PROCEDURE RegisterXWMenu(paramPtr: XCmdPtr; window: WindowPtr; menu: MenuHandle; registering: BOOLEAN);
  224. PROCEDURE SetXWIdleTime(paramPtr: XCmdPtr; window: WindowPtr; interval: LongInt);
  225. PROCEDURE XWHasInterruptCode(paramPtr: XCmdPtr; window: WindowPtr; haveCode: BOOLEAN);
  226. PROCEDURE XWAlwaysMoveHigh(paramPtr: XCmdPtr; window: WindowPtr; moveHigh: BOOLEAN);
  227. PROCEDURE XWAllowReEntrancy(paramPtr: XCmdPtr; window: WindowPtr; allowSysEvts: BOOLEAN; allowHCEvts: BOOLEAN);
  228.  
  229. (****  Text Editing Utilities  ****)
  230. PROCEDURE BeginXWEdit(paramPtr: XCmdPtr; window: WindowPtr);            
  231. PROCEDURE EndXWEdit(paramPtr: XCmdPtr; window: WindowPtr);                
  232. FUNCTION  HCWordBreakProc(paramPtr: XCmdPtr): ProcPtr;        
  233. PROCEDURE PrintTEHandle(paramPtr: XCmdPtr; hTE: TEHandle; header: StringPtr);
  234.  
  235. (****  Script Editor support  ****)
  236. FUNCTION  GetCheckPoints(paramPtr: XCmdPtr): CheckPtHandle;    
  237. PROCEDURE SetCheckPoints(paramPtr: XCmdPtr; checkLines: CheckPtHandle);
  238. PROCEDURE FormatScript(paramPtr: XCmdPtr; scriptHndl: Handle; 
  239.                VAR insertionPoint: LongInt; quickFormat: BOOLEAN);
  240. PROCEDURE SaveXWScript(paramPtr: XCmdPtr; scriptHndl: Handle);    
  241. PROCEDURE GetObjectName(paramPtr: XCmdPtr; object: XTalkObjectPtr; VAR objName: Str255);
  242. PROCEDURE GetObjectScript(paramPtr: XCmdPtr; object: XTalkObjectPtr; VAR scriptHndl: Handle);
  243. PROCEDURE SetObjectScript(paramPtr: XCmdPtr; object: XTalkObjectPtr; scriptHndl: Handle);
  244.  
  245. (****  Debugging Tools support  ****)
  246. PROCEDURE AbortScript(paramPtr: XCmdPtr);
  247. PROCEDURE GoScript(paramPtr: XCmdPtr);
  248. PROCEDURE StepScript(paramPtr: XCmdPtr; stepInto: BOOLEAN);
  249. PROCEDURE CountHandlers(paramPtr: XCmdPtr; VAR handlerCount: INTEGER);
  250. PROCEDURE GetHandlerInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; VAR handlerName: Str255;
  251.              VAR objectName: Str255; VAR varCount: INTEGER);
  252. PROCEDURE GetVarInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER;
  253.              VAR varName: Str255; VAR isGlobal: BOOLEAN; VAR varValue: Str255;
  254.              varHndl: Handle);
  255. PROCEDURE SetVarValue(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER;
  256.               varHndl: Handle);
  257. FUNCTION  GetStackCrawl(paramPtr: XCmdPtr): Handle;
  258. PROCEDURE TraceScript(paramPtr: XCmdPtr; traceInto: BOOLEAN);
  259.  
  260.  
  261. {$ENDC}    { UsingHyperXCmd }
  262.  
  263. {$IFC NOT UsingIncludes}
  264.     END.
  265. {$ENDC}
  266.